\documentclass{beamer}
\usefonttheme{professionalfonts}% font de LaTeX
\usetheme{Warsaw}
% Tema escogido en este ejemplo
%\setBeamercovered{transparent}
%%%% packages y comandos personales %%%%
%\usepackage[latin1]{inputenc}
\usepackage[activeacute,spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{latexsym} % S ́mbolos


%\usepackage{hyperref}
% Para incluir videos
%\usepackage{movie15}
\usepackage{tipa}
\usepackage{vowel}
%\usepackage{movie15}
\usepackage{multimedia}
\usepackage{graphicx}
\usepackage{hyperref}



%\usepackage{amsmath}
%\usepackage{amssymb}

\usepackage{graphicx}
\setlength{\unitlength}{1cm}  % measure in textwidths


\newtheorem{Teorema}{Teorema}
\newtheorem{Ejemplo}{Ejemplo}
\newtheorem{Definicion}{Definici ́n}

\newtheorem{Corolario}{Corolario}
\newtheorem{Prueba}{Prueba}


\begin{document}
\title{Interacción con entornos dinámicos usando autómatas celulares\\}

%\subtitle{Parte I}
\author[Castro R. C., Carbajal J. P.] % (optional, for multiple authors)
{Ramiro D. Castro\inst{1} \and Juan P. Carbajal\inst{2}}
\institute[UNC und Universidad de Zuric] % (optional)
{
  \inst{1}%
  Facultad de Matemática, Astronomía y Física\\
  Universidad Nacional de Córdoba
  \and
  \inst{2}%
  Departamento de Informática\\
  Universidad de Zurich
}

\vspace*{0.5cm}
\date{10 de Diciembre 2010}
\begin{frame}
\titlepage
\end{frame}
%\frame{\titlepage}

\section{Introducción}


\begin{frame}{¿Quienes juegan videojuegos?}
Datos demográficos.
\begin{itemize}
%\pause
\item 67\% de los jefes de hogar en USA juegan videojuegos.
%\pause
\item 34 años es la edad del jugador promedio.
%\pause
\item 40 años es la edad promedio del comprador frecuente de videojuegos.
%\pause
\item 40\% de los jugadores son mujeres.
%\pause
\item 300\% fue el aumento de jugadores de más de 50 años en la última década.
\end{itemize}
Datos: The Entertainment Software Association (ESA)
\url{http://www.theesa.com/facts/index.asp}
\end{frame}

\subsection{Crecimiento de la industria}
\begin{frame}{Not Just Entertaiment}
Crecimiento y expansión de la industria de los videojuegos.
\begin{itemize}
%\pause
\item Ya no son solo una forma de entretener niños y jóvenes.
%\pause
\item La idustria y la tecnología avanzó poderosamente las últimas décadas.
%\pause
\item Los avances en videojuegos llegan tanto a jugadores como no-jugadores.
%\pause
\item Van desde el entretenimiento hasta la educación, salud, negocios, entrenamiento...
\end{itemize}
\end{frame}

\section{Motivación}
%\begin{frame}{Videojuegos hoy}

%texto
%\end{frame}

\subsection{Ejemplos Graficos} 

\begin{frame}
\frametitle{Calidad gráfica hoy}
\begin{itemize}
\item Los videojuegos de hoy presentan detalles gráficos sin precendentes. 
\pause
\item Ejemplos...
\end{itemize}
\begin{columns}
\begin{column}{5cm}
\begin{itemize}
\item<1-> Left 4 Dead 2
\item<5-> Kingdom Under Fire II
\item<8-> Crysis 2
\end{itemize}
\vspace{3cm} 
\end{column}
\begin{column}{5cm}
\begin{overprint}
\includegraphics[scale=0.25]<2>{img/presentacion/left_4_dead_2/l4d2-image3.jpg}
\includegraphics[scale=0.25]<3>{img/presentacion/left_4_dead_2/l4d2-image4.jpg}
\includegraphics[scale=0.35]<6>{img/presentacion/kingdom_under_fire_II/kuf2-image3.jpg}
\includegraphics[scale=0.35]<7>{img/presentacion/kingdom_under_fire_II/kuf2-image1.jpg}
\includegraphics[scale=0.15]<9>{img/presentacion/crysis2/crysis2-image1.jpg}
\includegraphics[scale=0.13]<10>{img/presentacion/crysis2/crysis2-image3.jpg}
\end{overprint}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{AI en videojuegos}
¿Cómo puede la AI ayudar en el desarrollo de videojuegos?
%\pause
\begin{itemize}
\item Mejorar inmersión y la jugabilidad
%\pause
\item Aumentar la expresividad de los entornos
%\pause
\item Dotar de inteligencia a los a los agentes autónomos.
%\pause
\item Historia dinámicas
\end{itemize}
\end{frame}

\section{Propuesta}
\begin{frame}{Propuesta}
¿Qué proponemos?
%\pause
\begin{itemize}
\item Modelar entornos dinámicos usando CA.
%\pause
\item Usar técnicas de flocking para agentes autónomos.
\item Acoplar agentes autónomos a entornos dinámicos con CA.
\end{itemize}
\end{frame}

\subsection{Entornos dinámicos}
\begin{frame}{Entornos dinámicos y CA}
Entornos dinámicos:
%\pause
\begin{itemize}
\item Son escenarios del videojuego.
%\pause
\item Su estado varía según reglas de evolución.
\end{itemize}
%\pause
Entornos dinámicos con CA:
%\pause
\begin{itemize}
\item Discretizar el escenario en celdas.
%\pause
\item Cada celda representa una porción del escenario.
%\pause
\item Cada celda tiene su conjunto de celdas vecinas.
%\pause
\item Las celdas guardan un estado interno.
%\pause
\item Definir las reglas de actualización del CA.
\end{itemize}
\end{frame}

\begin{frame}{Espacio continuo y discreto}
Imagen de espacio continuo y discreto con explicación.
\begin{center}
\includegraphics[scale=1.3]{img/CA-continuo-discreto.png}
\end{center}
\end{frame}

\begin{frame}{CA y vecinos}
Usamos la vecindad de Von Neumann.
\begin{center}
\includegraphics[scale=.52]{img/presentacion/ca-1.png}
\end{center}
\end{frame}

%\begin{frame}{Celdas del CA}
%Atributos del CA:
%\begin{itemize}
%\item \textit{\textbf{pressure:}} valor actual de la celda.
%\item \textit{\textbf{new\_pressure:}} valor futuro de la celda.
%\item \textit{\textbf{t:}} ultima actualización.
%\item \textit{\textbf{porosidad:}} parte de flujo que recibe( $0 \geq porosidad \geq 1$).
%\item \textit{\textbf{outgas:}} la pérdida de presión ( $0 \geq outgas \geq 1$).
%\item \textit{\textbf{allow\_flow:}} indica si permite flujo o no.
%\end{itemize}
%\end{frame}

\begin{frame}[fragile]
Algoritmo de actualización:
\scriptsize{\begin{verbatim}
vecinos = self.vecinos_neumann(i,j)
for vecino in vecinos:

  if not vecino.allow_flow:
    continue

  if vecino.t != self.t:
    vecino.t= self.t
    vecino.update()
                        
    dpres = self.get_value(i,j) - vecino.get_pressure()
                
    flow = self.get_cell(i,j).porosidad*dpres
    maxFlow = self.get_value(i,j)/total_vecinos
    minFlow = -vecino.get_pressure()/total_vecinos
                                        
    flow=clamp(flow,maxFlow,minFlow)
                     
    self.get_cell(i,j).new_pressure -= flow
    vecino.new_pressure += flow
\end{verbatim}
}
\end{frame}


\frame{\frametitle{test}
%\movie{movie}{explosion-ca1.avi}
\href{run:./fix-video.sh}{video propagación de presión}
	}

\subsection{Agentes autónomos}
\begin{frame}{Agentes Autónomos}
Agentes autónomos:

\begin{itemize}
%\pause
\item Acciones no previamente definidas
%\pause
\item Libertad de movimiento
%\pause
\item Interacción con su entorno local.
%\pause
\item Auto-organización
%\pause
\item Comportamiento definido
\end{itemize}
\end{frame}

\begin{frame}{Agentes Autónomos}
Usos:

\begin{itemize}
%\pause
\item Personas: multitudes, grupos, extras.
%\pause
\item Animales: distintas especies, manadas.
%\pause
\item Otros: autos, motos, naves.
\end{itemize}

\end{frame}

\begin{frame}{Algoritmos de Flocking}
Se decidió usar un algoritmo basado en las reglas de Craig W. Reinolds.
\begin{itemize}
\item Separación
%\pause
\item Alineación
%\pause
\item Cohesión
\end{itemize}
\end{frame}

\begin{frame}{Reglas de flocking}
Separación:
\begin{itemize}
\item Evitar colisiones.
%\pause
\item Mantener una distancia mínima.
%\pause
\end{itemize}

Alineación:
\begin{itemize}
\item Alinear el movimiento con el de los vecinos.
%\pause
\item Organización del grupo.
%\pause
\end{itemize}

Cohesión:
\begin{itemize}
\item Agruparse.
%\pause
\item Moverse al cetro de los vecinos.
%\pause
\end{itemize}
\end{frame}

%\begin{frame}{Ejemplo}
%video de agentes en el entorno.
%\end{frame}

\subsection{Acople}
\begin{frame}{Integración}
Agentes y entorno:
%\begin{columns}
%\begin{column}{5cm}
\begin{itemize}
\item Los agentes se mueven en un espacio continuo.
%\pause
\item Son representados en el espacio discreto usando la proyección de su bounding box.
%\pause
\item Son afectados por fuerzas que sensan del entorno.
%\pause
\item Las fuerzas se calcula tomando la diferencia de presión a los lados de su bounding box.

\end{itemize}
\end{frame}

\begin{frame}
\begin{eqnarray}
p_j &=& \sum_i \vert p_{ij} \vert \quad j=\mathsf{u,d,l,r} \\
\label{eq:dP}\vec{F} &=& \left( p_u - p_d, p_l -p_r \right).
\end{eqnarray}
\includegraphics[scale=.63]{img/CACoupling.png}
\end{frame}

\begin{frame}
Video de interacción de agentes y entorno.
\end{frame}

%\subsection{Preguntas}
\begin{frame}{Gracias...}
\begin{center}
\LARGE{¿Pregunas? ¿Dudas?...}
\end{center}


\texttt{castro.ramiro@gmail.com}

\end{frame}

\end{document}


